The present invention relates to electronic data processing, and more particularly, to client-server computer communication.
In client-server systems, a client and a server communicate using network protocols, for example, HTTP (Hypertext Transfer Protocol) and TCP/IP (Transmission Control Protocol/Internet Protocol). Generally, a user of the client enters data; the client and the network forward the data to the server; and an application running on the server processes the data or forwards the data to another server (e.g., a database server) for processing. HTTP is a stateless protocol, meaning that the server keeps no record of previous interactions with the client. The server processes each interaction independently of previous interactions.
One example of a client-server system is the Internet. In the Internet scenario, a large number of clients communicate with a single server; each client is equipped with a browser. Standard browsers are commercially available (e.g., Microsoft Explorer, Netscape Navigator). For each particular application, the server instructs the browser by a page in a markup language. For example, an HTML(Hypertext Markup Language) page causes the browser to display an input mask that prompts the user to enter data. Often, the input mask provides representations of the data in a particular format (“transfer format”). However, the application processes the data in another format “process format”). For example, the application conveniently uses positive integers to process the age of a person and uses strings for names.
As with all human-to-computer interaction, human errors cannot be excluded; checking the data entered by the user is therefore advantageous. In practice, the input mask invites the user to input a large number of data items such as name, address, age, or other content. The error probability rises with the number of data items.
Checking data ranges according to predefined rules is desirable as well. For example, the application uses the data item “age-of-a-person” as an integer number between 0 and 130. In other words, there are input constraints, and the rules correspond to these constraints.
Checking data consistency between different data items is desirable as well. Predefined rules exist, for example, for checking the consistency between phone dialing codes and city. The code “0621” belongs to the cities Mannheim and Ludwigshafen in Germany, but not to the city of Heidelberg. In case of input error, the user is invited to enter the data again; however, this is often accompanied by an unwanted loss of correct data items. For example, the user has typed a number of data items, one item of data needs correction, but the server instructs the browser to return an empty mask.